385 VTAB 18: HTAB 1: PRINT "CTL-E LETS YOU GET TO THE ";: INVERSE : PRINT "END";: NORMAL : PRINT " OF THE LINE ";: INVERSE : PRINT "INSTANTLY";: NORMAL : PRINT " FOR FASTER EDITING": GOTO 395
390 VTAB 18: HTAB 1: PRINT "CTL-E lets you get to the end of the line INSTANTLY for faster editing"
465 POKE 1797,80: VTAB 3: HTAB 33: PRINT "27": IF PR THEN 475
470 VTAB 18: HTAB 1: PRINT "CTL-F PERMITS YOU TO ";: INVERSE : PRINT "FIND";: NORMAL : PRINT " ANY CHARACTER EVERY TIME IT APPEARS IN A PROGRAM LINE": GOTO 480
475 VTAB 18: HTAB 1: PRINT "CTL-F permits you to find any character EVERY time it appears in a program line"
480 GOSUB 3145
485 VTAB 18: HTAB 1: CALL -958: PRINT "CTL-F COMMAND...": IF PR THEN 500
490 VTAB 20: HTAB 1: PRINT "SELECT ANY CHARACTER. CURSOR WILL STOP ON EACH OCCURRENCE OF THAT CHARACTER"
495 VTAB 23: HTAB 1: PRINT "(SPEED GREATLY REDUCED FOR THIS DEMO)": GOTO 510
500 VTAB 20: HTAB 1: PRINT "Select any character. Cursor will STOP on each occurrence of that character"
505 VTAB 23: HTAB 1: PRINT "(Speed GREATLY reduced for this demo)"
545 FOR X = 1798 TO 1820: POKE X, PEEK(X) -128: GOSUB 100: GOSUB 3600
550 IF PEEK(X) = ASC(LS$) THEN POKE X, PEEK(X) -64: GOSUB 115: GOSUB 3610: GOTO 560
555 POKE X, PEEK(X) +128
560 NEXT X
565 POKE 1823,60: GOSUB 3145
570 VTAB 3: HTAB 10: PRINT "DONE "
575 REM CTL-I INSERT
580 GOSUB 90
585 VTAB 7: HTAB 1: PRINT "100 W$ = ";Q$;"PUT A DOG IN THE BUN";Q$
590 POKE 1797,87: VTAB 3: HTAB 33: PRINT "28": IF PR THEN 600
595 VTAB 18: HTAB 1: PRINT "CTL-I ALLOWS ";: INVERSE : PRINT "INSERT";: NORMAL : PRINT "ING OF A LETTER OR GROUP OF CHARACTERS IN A PROGRAM LINE": GOTO 605
600 VTAB 18: HTAB 1: PRINT "CTL-I allows inserting of a letter or group of characters in a program line"
1015 VTAB 18: HTAB 1: PRINT "CTL-R ";Q$;: INVERSE : PRINT "RESTORE";: NORMAL : PRINT "S";Q$;" LINE TO ORIGINAL VERSION, CURSOR TO START OF LINE": GOTO 1025
1020 VTAB 18: HTAB 1: PRINT "CTL-R ";Q$;"RESTORES";Q$;" line to original version, cursor to start of line"
1260 ME$ = "POWER UTILITIES": IF PR THEN ME$ = "power utilities"
1265 HOME : FOR X = 3 TO 21: VTAB X: HTAB 11: PRINT ME$: GOSUB 120: GOSUB 3590: NEXT X
1270 FOR X = 21 TO 4 STEP -1: VTAB X: HTAB 11: CALL -868: GOSUB 120: GOSUB 3590: NEXT X
1275 ME$ = "LET'S USE POWER UTILITIES OF GALE": IF PR THEN ME$ = "Let's use power utilities of GALE"
1280 HOME : VTAB 3: HTAB 1: PRINT ME$: PRINT
1285 GOSUB 3175
1290 REM =====NORMAL EDIT=====
1295 HOME
1300 VTAB 4: HTAB 3: PRINT "NORMAL EDITING"
1305 IF PR THEN 1315
1310 VTAB 7: HTAB 2: PRINT "TO ENTER THE ";: INVERSE : PRINT "EDIT";: NORMAL : PRINT " MODE, MERELY PRESS THE ";Q$;"/";Q$;" KEY -- AND THE LINE NUMBER TO BE EDITED": GOTO 1320
1315 VTAB 7: HTAB 2: PRINT "To enter the EDIT mode, merely press the ";Q$;"/";Q$;" key -- and the line number to be edited"
1320 GOSUB 3175
1325 VTAB 22: HTAB 2: PRINT "/100"
1330 GOSUB 3175
1335 HOME : GOSUB 90
1340 A$ = "100 TEXT : HOME : CLEAR"
1345 VTAB 17: HTAB 1: PRINT "THIS IS THE MASTER EDITING SCREEN": PRINT
1350 LK$ = "Many of its features will be explained as we proceed with this demonstration"
1355 FOR X = 1 TO LEN(A$): VTAB 7: HTAB X: PRINT MID$ (A$,X,1): VTAB 3: HTAB 33: PRINT INT(.75 *X): GOSUB 100: GOSUB 3600: NEXT X
1360 GOSUB 3145
1365 REM ===.A AUTO NUMBER===
1370 HOME
1375 VTAB 4: HTAB 3: PRINT "AUTO LINE NUMBER"
1380 POKE 1746,174: POKE 1747,1
1385 VTAB 22: HTAB 5: PRINT "STARTING LINE NUMBER"
1390 IF PR THEN 1400
1395 VTAB 7: HTAB 2: PRINT "YOU CAN USE THIS COMMAND TO NUMBER PROGRAM LINES ";: INVERSE : PRINT "AUTO";: NORMAL : PRINT "MATICALLY...": GOTO 1405
1400 VTAB 7: HTAB 2: PRINT "You can use this command to number program lines AUTOmatically..."
1405 GOSUB 3175: IF PR THEN 1415
1410 VTAB 7: HTAB 2: PRINT "IF A NUMBER IS ";: INVERSE : PRINT "NOT";: NORMAL : PRINT " SPECIFIED, NUMBERING WILL START WITH 10. LET'S TRY ";Q$;"100";Q$: GOTO 1420
1415 VTAB 7: HTAB 2: PRINT "If a number is NOT specified, numbering will start with 10. Let's try ";Q$;"100";Q$
1435 VTAB 7: HTAB 2: PRINT "THE ";: INVERSE : PRINT "INCREMENT";: NORMAL : PRINT " IS OPTIONAL. IF ";: INVERSE : PRINT "NOT";: NORMAL : PRINT " SPECIFIED, IT WILL BE 10. LET'S TRY ";Q$;"5";Q$: GOTO 1445
1440 VTAB 7: HTAB 2: PRINT "The INCREMENT is optional. If not specified, it will be 10. Let's try ";Q$;"5";Q$
1445 VTAB 22: HTAB 9: CALL -868: PRINT "5"
1450 GOSUB 3175
1455 HOME
1460 VTAB 7: HTAB 2:LK$ = "Pressing the arrow keys will produce the next line number in sequence": GOSUB 3700: PRINT
1465 FOR X = 1 TO 10: VTAB 9 +X: PRINT "]";95 +5 *X: GOSUB 120: GOSUB 3600: NEXT X
1470 GOSUB 3175
1475 REM ===.B BLOAD====
1480 HOME
1485 VTAB 4: HTAB 3: PRINT "BLOAD PARAMETERS"
1490 POKE 1746,174: POKE 1747,2
1495 GOSUB 3175
1500 VTAB 18: HTAB 1: CALL -958
1505 POKE 1232,221: POKE 1233,174: POKE 1234,2
1510 VTAB 20: PRINT "A = $5000 (20480)"
1515 VTAB 22: PRINT "L = $1B62 (7010)"
1520 IF PR THEN 1530
1525 VTAB 7: HTAB 2: PRINT "THE START (A) AND LENGTH (L) OF MOST RECENTLY ";: INVERSE : PRINT "BLOADED";: NORMAL : PRINT " BINARY PROGRAM WILL BE DISPLAYED, IN HEX AND DECIMAL": GOTO 1535
1530 VTAB 7: HTAB 2: PRINT "The start (A) and length (L) of most recently BLOADED binary program will be displayed, in hex and decimal"
1535 GOSUB 3175
1540 REM ====.C CHANGE====
1545 HOME
1550 VTAB 4: HTAB 3: PRINT "CHANGE"
1555 POKE 1746,174: POKE 1747,3
1560 GOSUB 3175
1565 VTAB 7: HTAB 2:LK$ = "The Change command will exchange any letter or number, word or group of characters for another": GOSUB 3700
1570 GOSUB 3175
1575 T = INT(12 * RND(1)) +35
1580 VTAB 7: HTAB 2: CALL -958:LK$ = "Any character between ASCII 33-47 may be used as a " +Q$ +"delimiter" +Q$ +".": GOSUB 3700: PRINT : HTAB 2:LK$ = "We shall use " +Q$ + CHR$(T) +Q$ +" for this example.": GOSUB 3700
1750 VTAB 22: HTAB 1:LK$ = "This is only a PARTIAL list of more than50 commands readily available": GOSUB 3700: IF PR = 0 THEN VTAB 22: HTAB 16: INVERSE : PRINT "PARTIAL": NORMAL
1795 VTAB 7: HTAB 2:LK$ = "This command is used to HIDE (or HOLD) a program in memory until it will be required at a later time": GOSUB 3700: IF PR = 0 THEN VTAB 7: HTAB 26: INVERSE : PRINT "HIDE (OR HOLD)";: NORMAL
1800 GOSUB 3175
1805 HOME
1810 FOR X = 1 TO 6: VTAB 3 +X: HTAB 2: PRINT B$(X +23): NEXT X
2130 FOR X = 1 TO 6: VTAB 10 +X: HTAB 3: PRINT B$(X +23): VTAB 10 +X: HTAB 2: PRINT X *5 +95: GOSUB 120
2135 FOR Y = 1 TO 3: POKE 1770,170: GOSUB 3600: POKE 1770,160: POKE 1771,170: GOSUB 3600: POKE 1771,160: NEXT Y
2140 NEXT X
2145 GOSUB 3145
2150 REM ====.S SEARCH====
2155 HOME
2160 VTAB 4: HTAB 3: PRINT "SEARCH"
2165 POKE 1746,174: POKE 1747,19
2170 GOSUB 3175
2175 VTAB 7: HTAB 2:LK$ = "The Search command will locate any letter or number, word or group of characters in your program": GOSUB 3700
2180 GOSUB 3175
2185 VTAB 7: HTAB 2: CALL -958:LK$ = "Any character between ASCII 33-47 may be used as a " +Q$ +"delimiter" +Q$ +" to help find the string...": GOSUB 3700
2190 POKE 1746,174: POKE 1747,19
2195 GOSUB 3175
2200 FOR X = 161 TO 175: POKE 1748,X: VTAB 22: HTAB 8: PRINT "<- ASCII #";X -128: GOSUB 120: GOSUB 3605: NEXT X
2310 VTAB 7: HTAB 2: PRINT "THIS COMMAND WILL ";: INVERSE : PRINT "UNHIDE";: NORMAL : PRINT " (RECOVER) A PROGRAM IN MEMORY PREVIOUSLY PUT THERE WITH ";: INVERSE : PRINT "HIDE";: NORMAL : PRINT " COMMAND": GOTO 2320
2315 VTAB 7: HTAB 2: PRINT "This command will UNHIDE (recover) a program in memory previously put there with HIDE command"
2320 GOSUB 3175
2325 SPEED= 200: FOR X = 1 TO 6: VTAB 11 +X: HTAB 2: PRINT B$(X +23): GOSUB 3600: NEXT X: SPEED= 255
2330 VTAB 22: HTAB 7: PRINT "PROGRAM UNHIDDEN!"
2335 GOSUB 3145
2340 REM =====.V VARIABLE XREF=====
2345 HOME
2350 VTAB 4: HTAB 3: PRINT "VARIABLE COMMAND"
2355 POKE 1746,174: POKE 1747,22
2360 GOSUB 3175
2365 VTAB 7: HTAB 2:LK$ = "This command produces an alphabetical list of all program variables": GOSUB 3700
2370 GOSUB 3175
2375 HOME
2380 FOR X = 1 TO 6: VTAB 3 +X: HTAB 2: PRINT B$(X +23): NEXT X
2740 E$ = "This is number of more than FIFTY " +Q$ +"shorthand commands." +Q$ +" It permits you to perform a specific programming step, by merely pressing" + CHR$(13) + CHR$(13) +"ESCAPE and then "
2745 IF PR = 0 THEN E$ = "THIS IS NUMBER OF MORE THAN FIFTY " +Q$ +"SHORTHAND COMMANDS." +Q$ +" IT PERMITS YOU TO PERFORM A SPECIFIC PROGRAMMING STEP, BY MERELY PRESSING" + CHR$(13) + CHR$(13) +"ESCAPE AND THEN "
3460 LK$ = "You can enter EDIT at any time by pressing CTL-G ===": GOSUB 3700: PRINT
3465 PRINT
3470 LK$ = "Listing can be ended at any time by pressing return key": GOSUB 3700: PRINT
3475 PRINT :LK$ = "If a line is " +Q$ +"full" +Q$ +"...GALE may allow you to squeeze in a few extra letters!": GOSUB 3700: PRINT
3480 PRINT :LK$ = "The use of programs which use the " +Q$ +"&" +Q$ +" command is still possible with GALE": GOSUB 3700: PRINT
3485 PRINT :LK$ = "Escape functions may be defined by you.": GOSUB 3700: PRINT
3490 PRINT :LK$ = "An " +Q$ +"extra" +Q$ +" set of INSTANT (ESC) commandsis included with GALE": GOSUB 3700: PRINT
3495 PRINT :LK$ = "Lower case available for PRINT and REMARKS if you can print lower case": GOSUB 3700: PRINT
3500 VTAB 1: HTAB 1: INVERSE : PRINT "IF YOU HAVE AN APPLE //E MOVE THE CURSOR ";: NORMAL : PRINT " FOUR ";: INVERSE : PRINT " DIFFERENT WAYS WITH ARROW KEYS! ": NORMAL
3505 GOSUB 3615
3510 VTAB 22: HTAB 1
3515 SPEED= 200
3520 GOSUB 3620
3525 PRINT : PRINT ">AND MORE ";
3530 GOSUB 3620
3535 FOR X = 1 TO 95: PRINT "MORE ";: NEXT X
3540 GOTO 3565
3545 FOR X = 1024 TO 2039
3550 IF PEEK(X) = 160 THEN 3560
3555 IF PEEK(X) < >197 THEN POKE X,32
3560 NEXT X
3565 VTAB 1: HTAB 1: FOR X = 1 TO 92: PRINT " GALE ";: NEXT X
3570 SPEED= 255
3575 GOSUB 3615
3580 HOME : GOTO 3280
3585 REM =====DELAY LOOPS=====
3590 FOR Z = 1 TO 5 *ZZ: NEXT Z: RETURN
3595 FOR Z = 1 TO 12 *ZZ: NEXT Z: RETURN
3600 FOR Z = 1 TO 25 *ZZ: NEXT Z: RETURN
3605 FOR Z = 1 TO 50 *ZZ: NEXT Z: RETURN
3610 FOR Z = 1 TO 100 *ZZ: NEXT Z: RETURN
3615 FOR Z = 1 TO 200 *ZZ: NEXT Z: RETURN
3620 FOR Z = 1 TO 300 *ZZ: NEXT Z: RETURN
3625 HOME : VTAB 5:LK$ = "You may select speed of demonstration at any time by returning to the main": GOSUB 3700
3630 PRINT :LK$ = "menu and selecting this option (#6)": GOSUB 3700: PRINT : PRINT
3635 IF TZ = 1 THEN INVERSE
3640 FOR X = 1 TO 9: VTAB 10: HTAB 9 +(2 *X): PRINT X: GOSUB 3590: NEXT X
3645 NORMAL :TZ = TZ +1: IF TZ >1 THEN TZ = 0
3650 PRINT :LK$ = " Select speed of display by number...": GOSUB 3700: PRINT
3750 PRINT : PRINT : PRINT :LK$ = "The ": GOSUB 3700: INVERSE : PRINT "GALE";: NORMAL :LK$ = " disk includes DOS 3.3 versions (for the Apple 2, 2 Plus, and //e)": GOSUB 3700
3755 PRINT : PRINT : PRINT :LK$ = "and ProDOS versions (for the //e and //c, 40- and 80-column)": GOSUB 3700: VTAB 23: END